T = int(input())
for tc in range(T):
s = [c for c in input()]
n = len(s)
i = 0
while (i < n):
if (s[i] == '?'):
prv = 'd' if i == 0 else s[i - 1]
nxt = 'e' if i + 1 >= n else s[i + 1]
for x in ['a', 'b', 'c']:
if (x != prv) and (x != nxt):
s[i] = x
break
else:
i += 1
ok = True
for i in range(n - 1):
if (s[i] == s[i + 1]):
print("-1")
ok = False
break
if (ok == True):
print("".join(s))
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
string s;
cin>>s;
int flag=0;
int n=s.length();
for(int i=0;i<n-1;i++){
if(s[i]!='?'&&s[i]==s[i+1]){
cout<<"-1"<<endl;
flag=1;
break;
}
}
if(flag==0){
if(n==1&&s[0]=='?'){
s[0]='a';
}
else{
for(int i=0;i<n;i++){
if(i==0){
if(s[i]=='?'&&s[i+1]=='a'){
s[i]='b';
}
if(s[i]=='?'&&s[i+1]=='b'){
s[i]='c';
}
if(s[i]=='?'&&s[i+1]=='c'){
s[i]='a';
}
if(s[i]=='?'&&s[i+1]=='?'){
s[i]='a';
}
}
else{
if(i==n-1){
if(s[i]=='?'&&s[i-1]=='a'){
s[i]='b';
}
if(s[i]=='?'&&s[i-1]=='b'){
s[i]='c';
}
if(s[i]=='?'&&s[i-1]=='c'){
s[i]='a';
}
}
else{
if(s[i]=='?'&&s[i-1]=='a'&&s[i+1]=='a'){
s[i]='b';
}
else{
if(s[i]=='?'&&s[i-1]=='b'&&s[i+1]=='b'){
s[i]='c';
}
else{
if(s[i]=='?'&&s[i-1]=='c'&&s[i+1]=='c'){
s[i]='a';
}
else{
if(s[i]=='?'&&s[i-1]=='a'&&s[i+1]=='b'){
s[i]='c';
}
else{
if(s[i]=='?'&&s[i-1]=='a'&&s[i+1]=='c'){
s[i]='b';
}
else{
if(s[i]=='?'&&s[i-1]=='b'&&s[i+1]=='a'){
s[i]='c';
}
else{
if(s[i]=='?'&&s[i-1]=='b'&&s[i+1]=='c'){
s[i]='a';
}else{
if(s[i]=='?'&&s[i-1]=='c'&&s[i+1]=='a'){
s[i]='b';
}
else{
if(s[i]=='?'&&s[i-1]=='c'&&s[i+1]=='b'){
s[i]='a';
}
else{
if(s[i]=='?'&&s[i+1]=='?'&&s[i-1]=='a'){
s[i]='b';
}
else{
if(s[i]=='?'&&s[i+1]=='?'&&s[i-1]=='b'){
s[i]='c';
}
else{
if(s[i]=='?'&&s[i+1]=='?'&&s[i-1]=='c'){
s[i]='a';
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
cout<<s<<endl;
}
}
}
2148. Count Elements With Strictly Smaller and Greater Elements | 2149. Rearrange Array Elements by Sign |
2150. Find All Lonely Numbers in the Array | 2151. Maximum Good People Based on Statements |
2144. Minimum Cost of Buying Candies With Discount | Non empty subsets |
1630A - And Matching | 1630B - Range and Partition |
1630C - Paint the Middle | 1630D - Flipping Range |
1328A - Divisibility Problem | 339A - Helpful Maths |
4A - Watermelon | 476A - Dreamoon and Stairs |
1409A - Yet Another Two Integers Problem | 977A - Wrong Subtraction |
263A - Beautiful Matrix | 180C - Letter |
151A - Soft Drinking | 1352A - Sum of Round Numbers |
281A - Word Capitalization | 1646A - Square Counting |
266A - Stones on the Table | 61A - Ultra-Fast Mathematician |
148A - Insomnia cure | 1650A - Deletions of Two Adjacent Letters |
1512A - Spy Detected | 282A - Bit++ |
69A - Young Physicist | 1651A - Playoff |